<html>
<head><meta charset="utf-8"><title>design meeting 2019-12-13 · t-compiler · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/index.html">t-compiler</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html">design meeting 2019-12-13</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="183365647"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183365647" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183365647">(Dec 13 2019 at 14:50)</a>:</h4>
<p>Hey <span class="user-group-mention" data-user-group-id="897">@T-compiler/meeting</span> -- design meeting in <strong>10 minutes</strong>.</p>



<a name="183365728"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183365728" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183365728">(Dec 13 2019 at 14:51)</a>:</h4>
<p>As a reminder, the topic is <a href="https://github.com/rust-lang/compiler-team/issues/222" target="_blank" title="https://github.com/rust-lang/compiler-team/issues/222">compiler-team#222</a>, or "IDE/library-ification" plans. We have a <a href="https://hackmd.io/w8OIoc7iQsuTrBlRV1xKMQ" target="_blank" title="https://hackmd.io/w8OIoc7iQsuTrBlRV1xKMQ">hackmd</a> that was prepared in advance which has some notes, questions, etc.</p>



<a name="183365789"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183365789" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183365789">(Dec 13 2019 at 14:52)</a>:</h4>
<p>Please feel free to review and add things to the end.</p>



<a name="183365851"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183365851" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183365851">(Dec 13 2019 at 14:53)</a>:</h4>
<p>oh hey i guess this is maybe a pre-announcement: There is a beta-nom that needs to be resolved (approved or denied) asap.</p>



<a name="183365862"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183365862" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183365862">(Dec 13 2019 at 14:53)</a>:</h4>
<p>beta-nom: "Stabilize attribute macros on inline modules" <a href="https://github.com/rust-lang/rust/issues/64273" target="_blank" title="https://github.com/rust-lang/rust/issues/64273">#64273</a></p>



<a name="183365890"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183365890" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183365890">(Dec 13 2019 at 14:53)</a>:</h4>
<p>I assume we can allocate a couple minutes at the start to discuss it. (I don't want to discuss it until the meeting starts.)</p>



<a name="183365966"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183365966" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183365966">(Dec 13 2019 at 14:54)</a>:</h4>
<p>there are three I think?</p>



<a name="183365968"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183365968" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183365968">(Dec 13 2019 at 14:54)</a>:</h4>
<p>I thought we had a general policy of not backporting stabilizations</p>



<a name="183365983"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183365983" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183365983">(Dec 13 2019 at 14:54)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/pull/64273" target="_blank" title="https://github.com/rust-lang/rust/pull/64273">https://github.com/rust-lang/rust/pull/64273</a> is one, but also <a href="https://github.com/rust-lang/rust/pull/66983" target="_blank" title="https://github.com/rust-lang/rust/pull/66983">https://github.com/rust-lang/rust/pull/66983</a> and <a href="https://github.com/rust-lang/rust/pull/67134" target="_blank" title="https://github.com/rust-lang/rust/pull/67134">https://github.com/rust-lang/rust/pull/67134</a></p>



<a name="183365995"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183365995" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183365995">(Dec 13 2019 at 14:54)</a>:</h4>
<blockquote>
<p>I thought we had a general policy of not backporting stabilizations</p>
</blockquote>
<p>I agree with this and was planning on saying so at the meeting.</p>



<a name="183366000"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183366000" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183366000">(Dec 13 2019 at 14:54)</a>:</h4>
<p>OK, I see <span class="user-mention" data-user-id="123856">@Vadim Petrochenkov</span>  has a <a href="https://github.com/rust-lang/rust/pull/64273#issuecomment-565170114" target="_blank" title="https://github.com/rust-lang/rust/pull/64273#issuecomment-565170114">comment</a> explaining their reasoning for why to stabilize faster</p>



<a name="183366029"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183366029" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183366029">(Dec 13 2019 at 14:54)</a>:</h4>
<p>uh wait did I somehow just contradict myself ... ?</p>



<a name="183366047"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183366047" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183366047">(Dec 13 2019 at 14:55)</a>:</h4>
<p>Nope, sorry, my bad. Edited my comment. :)</p>



<a name="183366222"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183366222" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183366222">(Dec 13 2019 at 14:57)</a>:</h4>
<p>Welp, let's setup a place for people to leave responses. There are some last minute backport nominations, add emojis:</p>



<a name="183366233"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183366233" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183366233">(Dec 13 2019 at 14:57)</a>:</h4>
<ul>
<li>Ensure that we get a hard error on generic ZST constants if their body causes an error during evaluation <a href="https://github.com/rust-lang/rust/issues/67134" target="_blank" title="https://github.com/rust-lang/rust/issues/67134">#67134</a></li>
</ul>



<a name="183366247"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183366247" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183366247">(Dec 13 2019 at 14:57)</a>:</h4>
<ul>
<li>Fix <code>unused_parens</code> triggers on macro by example code <a href="https://github.com/rust-lang/rust/issues/66983" target="_blank" title="https://github.com/rust-lang/rust/issues/66983">#66983</a></li>
</ul>



<a name="183366291"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183366291" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183366291">(Dec 13 2019 at 14:58)</a>:</h4>
<ul>
<li>Stabilize attribute macros on inline modules <a href="https://github.com/rust-lang/rust/issues/64273" target="_blank" title="https://github.com/rust-lang/rust/issues/64273">#64273</a></li>
</ul>



<a name="183366497"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183366497" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183366497">(Dec 13 2019 at 15:00)</a>:</h4>
<p>(I will do the next round of backports today, most likely, fwiw)</p>



<a name="183366501"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183366501" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183366501">(Dec 13 2019 at 15:00)</a>:</h4>
<p>Hello <span class="user-group-mention" data-user-group-id="897">@T-compiler/meeting</span> -- design meeting starting <strong>now</strong>! As a special treat, we have some backporting nominations, see above.</p>



<a name="183366508"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183366508" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183366508">(Dec 13 2019 at 15:00)</a>:</h4>
<h1>Announcements or comments on backports</h1>



<a name="183366519"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183366519" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183366519">(Dec 13 2019 at 15:00)</a>:</h4>
<ul>
<li>Uh did anybody make minutes from the last meeting? I think I forgot to do so, sigh.</li>
</ul>



<a name="183366580"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183366580" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183366580">(Dec 13 2019 at 15:01)</a>:</h4>
<p>you mean yesterday's meeting?</p>



<a name="183366584"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183366584" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183366584">(Dec 13 2019 at 15:01)</a>:</h4>
<p>or last week's?</p>



<a name="183366652"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183366652" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183366652">(Dec 13 2019 at 15:02)</a>:</h4>
<p>I meant <a href="#narrow/stream/131828-t-compiler/topic/design.20meeting.202019-12-06" title="#narrow/stream/131828-t-compiler/topic/design.20meeting.202019-12-06">last week's design meeting</a></p>



<a name="183366703"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183366703" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183366703">(Dec 13 2019 at 15:02)</a>:</h4>
<p>IIRC I felt there were a lot of interesting points made back and forth but I was unable to keep a hackmd up to date in the moment</p>



<a name="183366821"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183366821" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183366821">(Dec 13 2019 at 15:04)</a>:</h4>
<p><span class="user-mention" data-user-id="129457">@Florian Diebold</span> are you around by any chance?</p>



<a name="183366822"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183366822" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183366822">(Dec 13 2019 at 15:04)</a>:</h4>
<p>so regarding the back ports: I personally don't find petrochenkov's arguments for back porting <a href="https://github.com/rust-lang/rust/issues/64273" target="_blank" title="https://github.com/rust-lang/rust/issues/64273">#64273</a> compelling. I know they had <em>wanted</em> all the macro enhancements to be released in sync, but I don't see a big reason to do so</p>



<a name="183366828"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183366828" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183366828">(Dec 13 2019 at 15:04)</a>:</h4>
<p>I agree with that</p>



<a name="183366842"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183366842" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183366842">(Dec 13 2019 at 15:04)</a>:</h4>
<p>At least, I think the value of having a general rule to make our live's easier is higher :)</p>



<a name="183366858"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183366858" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183366858">(Dec 13 2019 at 15:04)</a>:</h4>
<blockquote>
<p><span class="user-mention silent" data-user-id="129457">Florian Diebold</span> are you around by any chance?</p>
</blockquote>
<p>yes, more or less</p>



<a name="183366866"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183366866" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183366866">(Dec 13 2019 at 15:04)</a>:</h4>
<p>It seems like 1.41 can be that "flag release" instead that authors can cite and rely on</p>



<a name="183366876"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183366876" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183366876">(Dec 13 2019 at 15:04)</a>:</h4>
<p>to be clear, I really don't have anything against this particular stabilization. But I also don't see much compelling me to deviate from our rule</p>



<a name="183366900"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183366900" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183366900">(Dec 13 2019 at 15:05)</a>:</h4>
<p>I have another backport candidate: <a href="https://github.com/rust-lang/rust/pull/67278" target="_blank" title="https://github.com/rust-lang/rust/pull/67278">https://github.com/rust-lang/rust/pull/67278</a></p>



<a name="183366916"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183366916" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183366916">(Dec 13 2019 at 15:05)</a>:</h4>
<p>(FWIW here's agenda for today's meeting <a href="https://hackmd.io/w8OIoc7iQsuTrBlRV1xKMQ" target="_blank" title="https://hackmd.io/w8OIoc7iQsuTrBlRV1xKMQ">https://hackmd.io/w8OIoc7iQsuTrBlRV1xKMQ</a>)</p>



<a name="183366924"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183366924" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183366924">(Dec 13 2019 at 15:05)</a>:</h4>
<p>(especially since in this case, a beta backport is implicitly a stable backport, in the sense that the beta-&gt;stable transition is imminent)</p>



<a name="183367045"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183367045" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Pietro Albini <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183367045">(Dec 13 2019 at 15:06)</a>:</h4>
<blockquote>
<p>I have another backport candidate: <a href="https://github.com/rust-lang/rust/pull/67278" target="_blank" title="https://github.com/rust-lang/rust/pull/67278">https://github.com/rust-lang/rust/pull/67278</a></p>
</blockquote>
<p>that's just a stable-to-stable right? I feel like it's too late and risky to backport it now</p>



<a name="183367057"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183367057" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183367057">(Dec 13 2019 at 15:06)</a>:</h4>
<p>I think <a href="https://github.com/rust-lang/rust/issues/67278" target="_blank" title="https://github.com/rust-lang/rust/issues/67278">#67278</a> can ride the trains</p>



<a name="183367100"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183367100" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183367100">(Dec 13 2019 at 15:07)</a>:</h4>
<p>or at least wait until after the beta-&gt;stable transition</p>



<a name="183367103"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183367103" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183367103">(Dec 13 2019 at 15:07)</a>:</h4>
<p>The last time we backported a stabilization was uniform_paths in 1.32.0 and we had a damn good reason for it then</p>



<a name="183367225"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183367225" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183367225">(Dec 13 2019 at 15:08)</a>:</h4>
<blockquote>
<p>that's just a stable-to-stable right? I feel like it's too late and risky to backport it now</p>
</blockquote>
<p>it is yes, in error code; it's in an error path, so it's not risky, I'd say</p>



<a name="183367278"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183367278" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183367278">(Dec 13 2019 at 15:08)</a>:</h4>
<p>Seems like we are <span aria-label="back" class="emoji emoji-1f519" role="img" title="back">:back:</span> on <a href="https://github.com/rust-lang/rust/issues/67134" target="_blank" title="https://github.com/rust-lang/rust/issues/67134">#67134</a> and <a href="https://github.com/rust-lang/rust/issues/66983" target="_blank" title="https://github.com/rust-lang/rust/issues/66983">#66983</a> but not <a href="https://github.com/rust-lang/rust/issues/64273" target="_blank" title="https://github.com/rust-lang/rust/issues/64273">#64273</a></p>



<a name="183367312"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183367312" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183367312">(Dec 13 2019 at 15:09)</a>:</h4>
<p>(the actual diff is only <code>expected</code> =&gt; <code>self.expected_ty()</code>, literally)</p>



<a name="183367339"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183367339" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183367339">(Dec 13 2019 at 15:09)</a>:</h4>
<p>I would prefer to avoid backporting PRs that have not yet landed unless they have a clear reason to be backported</p>



<a name="183367343"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183367343" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183367343">(Dec 13 2019 at 15:09)</a>:</h4>
<p>And <a href="https://github.com/rust-lang/rust/issues/67278" target="_blank" title="https://github.com/rust-lang/rust/issues/67278">#67278</a> is a bit less clear, but there's at least some objection, I think based mostly on the fact that it hasn't landed yet (c?) and doesn't seem that urgent</p>



<a name="183367363"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183367363" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183367363">(Dec 13 2019 at 15:09)</a>:</h4>
<p>yeah not urgent</p>



<a name="183367546"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183367546" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183367546">(Dec 13 2019 at 15:11)</a>:</h4>
<p>OK.</p>



<a name="183367560"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183367560" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183367560">(Dec 13 2019 at 15:11)</a>:</h4>
<p>I adjusted the labels and left comments on proposed PRs</p>



<a name="183367562"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183367562" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183367562">(Dec 13 2019 at 15:11)</a>:</h4>
<p>I'd say that even with the ICE the output is fairly clear anyways</p>



<a name="183367621"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183367621" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183367621">(Dec 13 2019 at 15:12)</a>:</h4>
<p>Shall we get started with the meeting proper?</p>



<a name="183367633"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183367633" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183367633">(Dec 13 2019 at 15:12)</a>:</h4>
<p>As <span class="user-mention" data-user-id="153740">@Igor Matuszewski</span> noted, there is a <a href="https://hackmd.io/w8OIoc7iQsuTrBlRV1xKMQ" target="_blank" title="https://hackmd.io/w8OIoc7iQsuTrBlRV1xKMQ">hackmd</a> with notes that we prepared</p>



<a name="183367656"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183367656" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183367656">(Dec 13 2019 at 15:12)</a>:</h4>
<p>I think my goal for this meeting would be:</p>



<a name="183367684"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183367684" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183367684">(Dec 13 2019 at 15:13)</a>:</h4>
<ul>
<li>To lay out the reasoning and proposed path forward for the RLS, rust-analyzer, and rustc</li>
</ul>



<a name="183367765"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183367765" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183367765">(Dec 13 2019 at 15:13)</a>:</h4>
<ul>
<li>Presuming we sort of agree on that, to talk about some of the bigger picture maintenance and milestone questions maybe? I'm not entirely sure which topics are best to focus on, except that I think it's clear that deeper teechnical discussions (e.g., details of library-ification) should probably have their own design meetings</li>
</ul>



<a name="183367827"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183367827" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183367827">(Dec 13 2019 at 15:14)</a>:</h4>
<ul>
<li>But e.g. talking about what work to prioritize first, or which things <em>want</em> design meetings, seems to make sense</li>
</ul>



<a name="183367840"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183367840" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183367840">(Dec 13 2019 at 15:14)</a>:</h4>
<p>Anyway in the doc we proposed to start by summarizing the plans and logic behind them, so maybe we should start there</p>



<a name="183367921"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183367921" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183367921">(Dec 13 2019 at 15:15)</a>:</h4>
<p>The question at hand is what to do about the fact that we have:</p>
<ul>
<li>two implementations of a lot of the compiler logic, one in rustc and one in rust-analyzer</li>
</ul>



<a name="183367938"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183367938" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183367938">(Dec 13 2019 at 15:15)</a>:</h4>
<ul>
<li>two semi-competing IDE platforms (even if the authors are collaborating :) -- that is, LSP implementations</li>
</ul>



<a name="183368055"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368055" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368055">(Dec 13 2019 at 15:17)</a>:</h4>
<p>We were considering I think two major options:</p>
<ul>
<li>keep rust-analyzer going and try to extract out shared code base over time, meaning that we are sort of maintaining the two compilers, but gradually eliminating the distinctions</li>
</ul>



<a name="183368084"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368084" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368084">(Dec 13 2019 at 15:17)</a>:</h4>
<ul>
<li>stop rust-analyzer and try to take the lessons from it and re-implement them in rustc code base</li>
</ul>



<a name="183368131"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368131" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368131">(Dec 13 2019 at 15:17)</a>:</h4>
<p>The conclusion we came to was that the first option was preferable, for a number of reasons. This is sort of the path we've <em>been</em> taking anyway, that we've sometimes called "library-ification"</p>



<a name="183368182"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368182" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368182">(Dec 13 2019 at 15:18)</a>:</h4>
<p>The reasoning is (I think) outlined in the doc, I'm not sure how much time to spend on it</p>



<a name="183368225"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368225" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368225">(Dec 13 2019 at 15:18)</a>:</h4>
<p>Yeah, it's in the <a href="https://hackmd.io/w8OIoc7iQsuTrBlRV1xKMQ#Alternatives-considered" target="_blank" title="https://hackmd.io/w8OIoc7iQsuTrBlRV1xKMQ#Alternatives-considered">alternatives considered</a> section</p>



<a name="183368264"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368264" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368264">(Dec 13 2019 at 15:19)</a>:</h4>
<p>should we review the potential discussion topics (written post overview in <a href="https://hackmd.io/w8OIoc7iQsuTrBlRV1xKMQ#Discussion-agenda" target="_blank" title="https://hackmd.io/w8OIoc7iQsuTrBlRV1xKMQ#Discussion-agenda">agenda</a>) and maybe let people vote on which are most important to talk about first?</p>



<a name="183368286"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368286" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368286">(Dec 13 2019 at 15:19)</a>:</h4>
<p>(The short version is that while this version does have a kind of maintenance cost, it lets us deliver value faster and also makes it easier for us to iterate)</p>



<a name="183368291"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368291" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368291">(Dec 13 2019 at 15:19)</a>:</h4>
<p>or do you want to just decide, without overhead of voting?</p>



<a name="183368298"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368298" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368298">(Dec 13 2019 at 15:19)</a>:</h4>
<p>Agree with first option; second seems unrealistic as a practical matter</p>



<a name="183368315"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368315" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368315">(Dec 13 2019 at 15:19)</a>:</h4>
<p>well, before we do that I wanted to say one other thing <span class="user-mention" data-user-id="116083">@pnkfelix</span></p>



<a name="183368366"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368366" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368366">(Dec 13 2019 at 15:20)</a>:</h4>
<p>one of the questions that's <em>not</em> addressed above is how to integrate RLS + rust-analyzer</p>



<a name="183368378"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368378" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368378">(Dec 13 2019 at 15:20)</a>:</h4>
<p>agreeing with <span class="user-mention" data-user-id="126931">@centril</span> , was going to raise the high cost of 2nd approach</p>



<a name="183368388"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368388" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368388">(Dec 13 2019 at 15:20)</a>:</h4>
<p>we probably don't have to go into the deatils but it's worth summarizing the current thoughts</p>



<a name="183368423"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368423" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368423">(Dec 13 2019 at 15:20)</a>:</h4>
<p>integrate save-analysis you mean?</p>



<a name="183368441"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368441" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368441">(Dec 13 2019 at 15:21)</a>:</h4>
<p>in terms of feature set, RLS offers two main things over rust-analyzer right now:</p>
<ul>
<li>find all usages / rename</li>
<li>precise error reporting</li>
</ul>
<p>both of these work by executing the compiler and using save-analysis data</p>



<a name="183368457"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368457" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368457">(Dec 13 2019 at 15:21)</a>:</h4>
<p>I think it's worth rebranding RLS to LSP serving static index using save-analysis while focusing on RA to be the "IDE" (low latency, incremental)</p>



<a name="183368458"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368458" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368458">(Dec 13 2019 at 15:21)</a>:</h4>
<p>the thought is to extend rust-analyzer so that (by default) it works in a similar way</p>



<a name="183368476"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368476" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368476">(Dec 13 2019 at 15:21)</a>:</h4>
<p>while also having its own, from scratch versions of these things using the shared library-ification codebase</p>



<a name="183368500"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368500" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368500">(Dec 13 2019 at 15:21)</a>:</h4>
<p>that users can opt-in to</p>



<a name="183368519"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368519" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368519">(Dec 13 2019 at 15:21)</a>:</h4>
<p>there are some details of how this might be done, e.g. <span class="user-mention" data-user-id="133169">@matklad</span> was advocating for standalone executable tools that rust-analyzer can invoke</p>



<a name="183368570"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368570" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368570">(Dec 13 2019 at 15:22)</a>:</h4>
<p>I'm not sure if there's been much experimentation in that direction but anyway that's the big picture from <em>my</em> perspective</p>



<a name="183368580"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368580" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368580">(Dec 13 2019 at 15:22)</a>:</h4>
<p>would this new "save-analysis"-like thing be an AST or HIR based analysis?</p>



<a name="183368605"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368605" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368605">(Dec 13 2019 at 15:22)</a>:</h4>
<p>I mean I think to start it would literally be save-analysis</p>



<a name="183368613"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368613" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368613">(Dec 13 2019 at 15:22)</a>:</h4>
<p>I don't think we need to reinvent save-analysis as of now</p>



<a name="183368615"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368615" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368615">(Dec 13 2019 at 15:22)</a>:</h4>
<p>the goal is to bring rust-analyzer up to "parity" as quickly as possible</p>



<a name="183368628"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368628" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368628">(Dec 13 2019 at 15:22)</a>:</h4>
<p>(we could, but that might not give us much benefit initially)</p>



<a name="183368629"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368629" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368629">(Dec 13 2019 at 15:22)</a>:</h4>
<p>save-analysis is... suboptimal though</p>



<a name="183368642"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368642" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368642">(Dec 13 2019 at 15:23)</a>:</h4>
<p>^--- very much this</p>



<a name="183368663"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368663" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368663">(Dec 13 2019 at 15:23)</a>:</h4>
<p>Agreed on this</p>



<a name="183368664"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368664" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368664">(Dec 13 2019 at 15:23)</a>:</h4>
<p>I wouldn't argue with that</p>



<a name="183368673"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368673" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368673">(Dec 13 2019 at 15:23)</a>:</h4>
<p>I just dont' know how it's relevant :P</p>



<a name="183368676"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368676" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368676">(Dec 13 2019 at 15:23)</a>:</h4>
<p>However as <span class="user-mention" data-user-id="116009">@nikomatsakis</span> outlined I think it's more about feature parity</p>



<a name="183368694"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368694" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368694">(Dec 13 2019 at 15:23)</a>:</h4>
<p>and make one IDE tool "official"</p>



<a name="183368710"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368710" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368710">(Dec 13 2019 at 15:23)</a>:</h4>
<p>or blessed or other</p>



<a name="183368716"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368716" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368716">(Dec 13 2019 at 15:23)</a>:</h4>
<p>I'm joking of course, it's relevant, but I think in terms of priorities it doesn't make sense to be focusing on re-implementing save-analysis (over, say, <del>extending the IDE part of things</del> libraryification efforts)</p>



<a name="183368778"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368778" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368778">(Dec 13 2019 at 15:24)</a>:</h4>
<p>and to converge the effort, so to speak (and not confuse the users about "competing" platforms)</p>



<a name="183368815"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368815" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368815">(Dec 13 2019 at 15:24)</a>:</h4>
<p>my two cents on this is that RLS would be simpler and smaller if it just used the compiler APIs on the fly</p>



<a name="183368854"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368854" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368854">(Dec 13 2019 at 15:24)</a>:</h4>
<p>and there was no save-analysis between in-memory compiler state and the IDE</p>



<a name="183368873"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368873" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368873">(Dec 13 2019 at 15:25)</a>:</h4>
<p>but maybe save-analysis serves some function that this can't work with?</p>



<a name="183368898"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368898" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368898">(Dec 13 2019 at 15:25)</a>:</h4>
<p>offline code index format is a good use case</p>



<a name="183368907"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368907" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368907">(Dec 13 2019 at 15:25)</a>:</h4>
<p>(ignoring the MXR/DXR efforts that spawned it in the first place)</p>



<a name="183368919"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368919" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368919">(Dec 13 2019 at 15:25)</a>:</h4>
<p>although technically RLS could invoke compiler queries right now, yes</p>



<a name="183368920"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183368920" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183368920">(Dec 13 2019 at 15:25)</a>:</h4>
<p>This is basically what we're talking about -- another option, presumably, might be to extend rust-analyzer to not use <em>save-analysis</em> but rather to communicate directly with rustc</p>



<a name="183369016"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369016" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369016">(Dec 13 2019 at 15:26)</a>:</h4>
<p>Well, I think there's some tricky bits there</p>



<a name="183369020"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369020" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369020">(Dec 13 2019 at 15:26)</a>:</h4>
<p>some kind of pre-computed database like the save-analysis data is probably a good idea</p>



<a name="183369025"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369025" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369025">(Dec 13 2019 at 15:26)</a>:</h4>
<p>For one thing, I think that we really want to invoke <em>cargo</em> a lot of the times</p>



<a name="183369050"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369050" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369050">(Dec 13 2019 at 15:26)</a>:</h4>
<p>i.e., you want to handle things like <code>build.rs</code> and friends</p>



<a name="183369057"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369057" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369057">(Dec 13 2019 at 15:26)</a>:</h4>
<p>since RLS already runs rustc in-process, why don't we experiment with short-circuiting the data collection process there?</p>



<a name="183369107"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369107" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369107">(Dec 13 2019 at 15:27)</a>:</h4>
<p>For another, rustc is presently focused on a crate at a time, but we need to incorporate many crates into the workspace and so forth</p>



<a name="183369116"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369116" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369116">(Dec 13 2019 at 15:27)</a>:</h4>
<p>save-analysis is some ~4kloc; honestly not that crazy to rewrite the whole thing</p>



<a name="183369117"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369117" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369117">(Dec 13 2019 at 15:27)</a>:</h4>
<p>also, even today, rust-analyzer could just run RLS in the background and provide some of that functionality by using LSP, no? if we want one tool that can do multiple things</p>



<a name="183369130"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369130" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369130">(Dec 13 2019 at 15:27)</a>:</h4>
<p><span class="user-mention" data-user-id="126931">@centril</span> I don't think that code has any reason to exist</p>



<a name="183369132"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369132" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369132">(Dec 13 2019 at 15:27)</a>:</h4>
<p>I'm worried that for doing references we need to do the entire lex -&gt;  parse -&gt; expand -&gt; name resolve pass</p>



<a name="183369144"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369144" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369144">(Dec 13 2019 at 15:27)</a>:</h4>
<p>so I'm not sure if in terms of engineering effort it'd be easier to reuse save-analysis for now</p>



<a name="183369145"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369145" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369145">(Dec 13 2019 at 15:27)</a>:</h4>
<p>I'm trying to decide whether this is a rathole or <em>the</em> question to be answered :)</p>



<a name="183369148"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369148" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369148">(Dec 13 2019 at 15:27)</a>:</h4>
<p>like, I don't think what it does is useful, let alone it does it right now</p>



<a name="183369163"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369163" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369163">(Dec 13 2019 at 15:28)</a>:</h4>
<p>Running RLS in background is technically complicated, b/c it's <code>rustc_private</code>. Reading save-analysis from disk is technically trivial</p>



<a name="183369229"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369229" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369229">(Dec 13 2019 at 15:28)</a>:</h4>
<p><span class="user-mention" data-user-id="133169">@matklad</span> run it like VSCode does</p>



<a name="183369233"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369233" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369233">(Dec 13 2019 at 15:28)</a>:</h4>
<p>not some library</p>



<a name="183369271"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369271" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369271">(Dec 13 2019 at 15:29)</a>:</h4>
<blockquote>
<p>I'm worried that for doing references we need to do the entire lex -&gt;  parse -&gt; expand -&gt; name resolve pass</p>
</blockquote>
<p>can you explain a bit more?</p>



<a name="183369275"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369275" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369275">(Dec 13 2019 at 15:29)</a>:</h4>
<p>having data instead of a runtime API as the common interface seems like a good idea to me</p>



<a name="183369335"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369335" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369335">(Dec 13 2019 at 15:29)</a>:</h4>
<p><span class="user-mention" data-user-id="119009">@eddyb</span> I was thinking that for rust-analyzer to do all that we'd need to set up basically the compilation ourselves, which I'm not sure it's easier than to spawn <code>rustc -Zsave-analysis</code> and read the JSON</p>



<a name="183369339"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369339" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369339">(Dec 13 2019 at 15:29)</a>:</h4>
<p>it would be good to make that data incrementally updateable though</p>



<a name="183369342"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369342" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369342">(Dec 13 2019 at 15:29)</a>:</h4>
<p>I'm a bit confused <span class="user-mention" data-user-id="119009">@eddyb</span> -- you're proposing that rust-analyzer runs RLS and (e.g.) forwards some LSP queries to it? We did discuss this, I think, it seems potentially plausible to me, though I think what you <em>really</em> want is probably a stripped down version of RLS. It's kind of the "competitor" to having command-line utilities that execute.</p>



<a name="183369344"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369344" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369344">(Dec 13 2019 at 15:29)</a>:</h4>
<blockquote>
<p>I don't think that code has any reason to exist</p>
</blockquote>
<p><span class="user-mention" data-user-id="119009">@eddyb</span> yea sure; -- would also add that I wouldn't trust the correctness of save-analysis in general at least given my past experience of tweaking it</p>



<a name="183369357"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369357" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369357">(Dec 13 2019 at 15:30)</a>:</h4>
<p>but I was just saying that from engineering PoV and initial cost</p>



<a name="183369490"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369490" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369490">(Dec 13 2019 at 15:30)</a>:</h4>
<p>incremental updates of index files would be a great benefit, that's true</p>



<a name="183369528"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369528" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369528">(Dec 13 2019 at 15:31)</a>:</h4>
<p>Another factor that I recall <span class="user-mention" data-user-id="133169">@matklad</span> raising was being able to handle "custom setups" that don't use cargo; i.e., the more our interface is "run this command with some extra rustflags", the easier that will be to handle.</p>



<a name="183369551"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369551" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369551">(Dec 13 2019 at 15:31)</a>:</h4>
<p>(I believe this is currently a weakness of the RLS today, but I'm not sure of the details there)</p>



<a name="183369623"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369623" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369623">(Dec 13 2019 at 15:31)</a>:</h4>
<p>we can feed the build plan to RLS and it can work in that environment, but by default we run cargo initially to fetch that plan</p>



<a name="183369675"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369675" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369675">(Dec 13 2019 at 15:32)</a>:</h4>
<p>In any case, am I correct that at the moment we are not arguing with the "overall plan" but more about the details of how one might augment rust-analyzer to bring it up to parity?</p>



<a name="183369676"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369676" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369676">(Dec 13 2019 at 15:32)</a>:</h4>
<ol>
<li>I consider save-analysis to be a complete hack</li>
<li>LSP forward is also a JSON hack, but presumably requires less work</li>
</ol>



<a name="183369712"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369712" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369712">(Dec 13 2019 at 15:32)</a>:</h4>
<p>this is why I prefer LSP over spreading the save-analysis misdesign further</p>



<a name="183369755"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369755" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369755">(Dec 13 2019 at 15:32)</a>:</h4>
<p>regarding lsp, there's an LSIF (<a href="https://github.com/microsoft/language-server-protocol/issues/623" target="_blank" title="https://github.com/microsoft/language-server-protocol/issues/623">https://github.com/microsoft/language-server-protocol/issues/623</a>) floating around</p>



<a name="183369759"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369759" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369759">(Dec 13 2019 at 15:33)</a>:</h4>
<p>then parts of RLS can be rewritten to bypass save-analysis and just use the compiler state</p>



<a name="183369760"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369760" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369760">(Dec 13 2019 at 15:33)</a>:</h4>
<p>"LSP forward" ?</p>



<a name="183369762"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369762" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369762">(Dec 13 2019 at 15:33)</a>:</h4>
<p><span class="user-mention" data-user-id="119009">@eddyb</span> agree with 1, disagree with 2: it means that we need to maintain RLS as a separate binary at all. </p>
<p>The idea is that rust-analyzer gets save analysis directly from compiler, by running <code>cargo check -Zsave-analyzis</code></p>



<a name="183369779"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369779" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369779">(Dec 13 2019 at 15:33)</a>:</h4>
<p>which is an LSP save-analysis</p>



<a name="183369797"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369797" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369797">(Dec 13 2019 at 15:33)</a>:</h4>
<p>to be clear, nobody is proposing to keep save-analysis exactly the way it is forever here, right?</p>



<a name="183369799"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369799" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369799">(Dec 13 2019 at 15:33)</a>:</h4>
<p>which I'd probably vote to move save-analysis to (in terms of the format/serving)</p>



<a name="183369804"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369804" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369804">(Dec 13 2019 at 15:33)</a>:</h4>
<p><span class="user-mention" data-user-id="133169">@matklad</span> but that's not forward-compatible with in-memory resident rustc</p>



<a name="183369826"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369826" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369826">(Dec 13 2019 at 15:33)</a>:</h4>
<p><span class="user-mention" data-user-id="124287">@mw</span> I think <span class="user-mention" data-user-id="133169">@matklad</span> is to some extent otherwise his suggestion can't work</p>



<a name="183369898"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369898" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369898">(Dec 13 2019 at 15:34)</a>:</h4>
<p>just the approach of "the compiler generates a per-crate "database" for consumption elsewhere"</p>



<a name="183369912"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369912" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369912">(Dec 13 2019 at 15:34)</a>:</h4>
<p>I don't think that's true; the idea would be that save-analysis is a temporary crutch to be used while we improve rust-analyzer and make progress on library-ification, though I think it's a crutch that might last a year or two.</p>



<a name="183369919"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369919" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369919">(Dec 13 2019 at 15:34)</a>:</h4>
<p>if you want something temporary, forward LSP to RLS, which already exists and most people have installed</p>



<a name="183369954"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183369954" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183369954">(Dec 13 2019 at 15:34)</a>:</h4>
<p>if you want something permanent, an offline database is not it IMO</p>



<a name="183370004"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183370004" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183370004">(Dec 13 2019 at 15:35)</a>:</h4>
<blockquote>
<p>if you want something permanent, an offline database is not it IMO</p>
</blockquote>
<p>why not? that could be cached for <a href="http://crates.io" target="_blank" title="http://crates.io">crates.io</a> stuff for example</p>



<a name="183370039"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183370039" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183370039">(Dec 13 2019 at 15:35)</a>:</h4>
<p>oh god please let's not have something like that wasm proc macro thing happen again</p>



<a name="183370042"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183370042" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183370042">(Dec 13 2019 at 15:35)</a>:</h4>
<p>ah: <span class="user-mention" data-user-id="119009">@eddyb</span> , are you saying that instead of filling in the gaps in rust-analyzer with save-analysis in short-term, we should instead fill in gaps in rust-analyzer by having it call out to RLS ?</p>



<a name="183370045"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183370045" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183370045">(Dec 13 2019 at 15:35)</a>:</h4>
<p><span class="user-mention" data-user-id="119009">@eddyb</span> yes and no, we'd have to initialize RLS on the side in order to 'forward LSP'</p>



<a name="183370067"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183370067" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183370067">(Dec 13 2019 at 15:35)</a>:</h4>
<p>if we want to cache something, it should be the incremental data</p>



<a name="183370074"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183370074" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183370074">(Dec 13 2019 at 15:35)</a>:</h4>
<p>so this is the same approach as 'run both things at the same time' (which we did consider)</p>



<a name="183370128"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183370128" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183370128">(Dec 13 2019 at 15:36)</a>:</h4>
<p><span class="user-mention" data-user-id="116083">@pnkfelix</span> pretty much yeah</p>



<a name="183370182"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183370182" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183370182">(Dec 13 2019 at 15:36)</a>:</h4>
<p>I'm not sure this is a right approach</p>



<a name="183370189"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183370189" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183370189">(Dec 13 2019 at 15:36)</a>:</h4>
<p>rather, I wouldn't forward LSP</p>



<a name="183370194"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183370194" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183370194">(Dec 13 2019 at 15:36)</a>:</h4>
<p>but use 'rls cli'</p>



<a name="183370232"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183370232" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183370232">(Dec 13 2019 at 15:37)</a>:</h4>
<p>So, what <span class="user-mention" data-user-id="133169">@matklad</span> specifically was proposing, I think, is to have some command-line tools that could execute and respond to queries. The fact that they used "save-analysis"  to communicate was, I think, going to be an implementation detail of these tools. Is that right, <span class="user-mention" data-user-id="133169">@matklad</span>?</p>



<a name="183370243"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183370243" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183370243">(Dec 13 2019 at 15:37)</a>:</h4>
<p>to forward LSP we'd have to maintain state on both sides, we'd duplicate memory usage only to feed find usages data</p>



<a name="183370268"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183370268" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183370268">(Dec 13 2019 at 15:37)</a>:</h4>
<p>tbh I'm considering the fact that I should probably not be in this meeting, since I have strong feelings about this, feeling like a Cassandra and all (I had a demo before 1.0 which used rustc as a library to do things like show types of expressions on hover, and RLS still can't do anything like that, despite having had mountains of efforts just sank into it)</p>



<a name="183370269"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183370269" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183370269">(Dec 13 2019 at 15:37)</a>:</h4>
<p>so in terms of engineering it makes more sense to temporarily spawn RLS to answer one-off queries (find all refs isn't that common)</p>



<a name="183370276"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183370276" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183370276">(Dec 13 2019 at 15:37)</a>:</h4>
<p>with save-analysis, rust-analyzer could probably use that to supplement its analysis for other requests, instead of just blindly forwarding the LSP requests that  RLS supports</p>



<a name="183370355"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183370355" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183370355">(Dec 13 2019 at 15:38)</a>:</h4>
<p>(current example, implementing call hierarchy)</p>



<a name="183370400"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183370400" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183370400">(Dec 13 2019 at 15:38)</a>:</h4>
<p>this addresses the main con of rust-analyzer, namely lack of rustc parity</p>



<a name="183370407"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183370407" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183370407">(Dec 13 2019 at 15:38)</a>:</h4>
<p>with save-analysis we'd know what compiler knows</p>



<a name="183370431"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183370431" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183370431">(Dec 13 2019 at 15:38)</a>:</h4>
<p><span class="user-mention" data-user-id="119009">@eddyb</span> I'm not sure whether you want us to tease apart that last message</p>



<a name="183370436"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183370436" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183370436">(Dec 13 2019 at 15:38)</a>:</h4>
<p>(which could only be generated for those queries like find all refs or call hierarchy)</p>



<a name="183370448"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183370448" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183370448">(Dec 13 2019 at 15:39)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> sort-of. But I'd consider the tools themselves implementation detail, at least for the time being</p>



<a name="183370475"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183370475" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183370475">(Dec 13 2019 at 15:39)</a>:</h4>
<p>Implementation details of rust-analyzer, in other words</p>



<a name="183370478"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183370478" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183370478">(Dec 13 2019 at 15:39)</a>:</h4>
<p>Yes, I agree</p>



<a name="183370486"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183370486" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183370486">(Dec 13 2019 at 15:39)</a>:</h4>
<p>There are many levels of "impl details"</p>



<a name="183370596"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183370596" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183370596">(Dec 13 2019 at 15:40)</a>:</h4>
<p><span class="user-mention" data-user-id="119009">@eddyb</span>   it seems clear to me that your knowledge of rustc's architecture and potential future seems like a valuable part of the conversation here. But I also think that it can be hard to reach common ground for communication</p>



<a name="183370629"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183370629" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183370629">(Dec 13 2019 at 15:40)</a>:</h4>
<p>this is not about communication. this is about the history of the RLS and decisions taken in the past. I can explain more in PM if people are curious</p>



<a name="183370710"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183370710" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183370710">(Dec 13 2019 at 15:41)</a>:</h4>
<p>I'm talking about failure to communicate here and now in the meeting, <span class="user-mention" data-user-id="119009">@eddyb</span></p>



<a name="183370754"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183370754" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183370754">(Dec 13 2019 at 15:42)</a>:</h4>
<p>sometimes I think I'm the only one who doesn't understand what youi</p>



<a name="183370785"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183370785" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183370785">(Dec 13 2019 at 15:42)</a>:</h4>
<p><span class="user-mention" data-user-id="119009">@eddyb</span>  perhaps it would be best to lay this out as a text</p>



<a name="183370804"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183370804" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183370804">(Dec 13 2019 at 15:42)</a>:</h4>
<p>you are sayingh</p>



<a name="183370819"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183370819" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183370819">(Dec 13 2019 at 15:42)</a>:</h4>
<p>so one thing that makes me feel positive about an offline database approach is that <code>rustc</code> is probably going to stay optimized for one-off invocations (as opposed to becoming a long-running process)</p>



<a name="183370826"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183370826" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183370826">(Dec 13 2019 at 15:42)</a>:</h4>
<p>but I'm willing to <strong>say</strong> i don</p>



<a name="183370828"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183370828" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183370828">(Dec 13 2019 at 15:42)</a>:</h4>
<p>t understand</p>



<a name="183370858"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183370858" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183370858">(Dec 13 2019 at 15:42)</a>:</h4>
<blockquote>
<p>so one thing that makes me feel positive about an offline database approach is that <code>rustc</code> is probably going to stay optimized for one-off invocations (as opposed to becoming a long-running process)</p>
</blockquote>
<p>this is different from what I thought we've all been agreeing for years</p>



<a name="183370880"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183370880" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183370880">(Dec 13 2019 at 15:42)</a>:</h4>
<p>isn't this what end-to-end querifyication was for?</p>



<a name="183370916"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183370916" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183370916">(Dec 13 2019 at 15:43)</a>:</h4>
<p>I don't think it's a discussion either-or</p>



<a name="183370924"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183370924" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183370924">(Dec 13 2019 at 15:43)</a>:</h4>
<p><span class="user-mention" data-user-id="116083">@pnkfelix</span> okay I'll admit I'm confused by some of <span class="user-mention" data-user-id="124287">@mw</span>'s statements</p>



<a name="183370931"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183370931" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183370931">(Dec 13 2019 at 15:43)</a>:</h4>
<p>I think offline database has very much its uses</p>



<a name="183370951"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183370951" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183370951">(Dec 13 2019 at 15:43)</a>:</h4>
<p>but we shouldn't just use it as main driver for IDE/compilation purposes</p>



<a name="183370977"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183370977" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183370977">(Dec 13 2019 at 15:43)</a>:</h4>
<p>and I don't think anyone here wants to keep save-analysis as-is</p>



<a name="183370980"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183370980" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183370980">(Dec 13 2019 at 15:43)</a>:</h4>
<blockquote>
<p>I think offline database has very much its uses</p>
</blockquote>
<p>can you summarize?</p>



<a name="183370999"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183370999" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183370999">(Dec 13 2019 at 15:44)</a>:</h4>
<p>I love the GitHub pre-computed navigation feature</p>



<a name="183371063"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183371063" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183371063">(Dec 13 2019 at 15:44)</a>:</h4>
<p>which could be powered using the same approach</p>



<a name="183371071"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183371071" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183371071">(Dec 13 2019 at 15:44)</a>:</h4>
<p>I feel both offline database, and long-running rustc are in the <strong>far</strong> future, and it probably doesn't make a lot of sense to discuss thouse in details</p>



<a name="183371074"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183371074" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183371074">(Dec 13 2019 at 15:44)</a>:</h4>
<p>I think what <span class="user-mention" data-user-id="124287">@mw</span> is saying (which I'm sympathetic to) is that there may well be a need to have two "drivers", one for "batch compilation" and one for "IDE". I imagine they would both be based around the same set of core libaries and share 99% of the same code, but might make some choices differently (e.g., batch compilation might be based on arenas and use the disk to cache incremental state, IDEs would likely not)</p>



<a name="183371111"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183371111" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183371111">(Dec 13 2019 at 15:44)</a>:</h4>
<p>to clarify: I thought that the RLS + rust-analyzer approach included:</p>
<ul>
<li>keep rustc as batch compiler</li>
<li>optimize rust-analyzer for being a long-running process</li>
<li>share code at a library level between those two</li>
</ul>



<a name="183371137"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183371137" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183371137">(Dec 13 2019 at 15:45)</a>:</h4>
<p>But I also agree with <span class="user-mention" data-user-id="133169">@matklad</span> -- one thing that I feel maybe got lost is that I <em>think</em> we're all aiming to build a "responsive" IDE design, much like the one that <span class="user-mention" data-user-id="119009">@eddyb</span> has been advocating for (which I found quite inspiring), and the question is more charting out the course to get there</p>



<a name="183371144"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183371144" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183371144">(Dec 13 2019 at 15:45)</a>:</h4>
<p>yes, what Niko said</p>



<a name="183371203"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183371203" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183371203">(Dec 13 2019 at 15:45)</a>:</h4>
<p>I don't consider any of this as set in stone</p>



<a name="183371251"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183371251" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183371251">(Dec 13 2019 at 15:46)</a>:</h4>
<p>the only caveat I would give <span class="user-mention" data-user-id="124287">@mw</span> is that I think it would be <em>amazing</em> if we can unify rustc+rust-analyzer, but I'm not sure it makes sense; luckily in the short term the question feels moot, since we have to kind of do the same work either way.</p>



<a name="183371300"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183371300" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183371300">(Dec 13 2019 at 15:46)</a>:</h4>
<p>time check, 14 min left</p>



<a name="183371307"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183371307" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183371307">(Dec 13 2019 at 15:46)</a>:</h4>
<p>but I see us doing a lot of optimizations (e.g., streaming the dep-graph to disk) that seem to be useful, but don't make sense for IDEs, which is what gives me a bit of pause to think that the we may want to have two kinds of "implementations" of the same query system, with different trade-offs</p>



<a name="183371317"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183371317" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183371317">(Dec 13 2019 at 15:46)</a>:</h4>
<p>We haven't touched on:</p>
<blockquote>
<h3>Library-ification priorities</h3>
</blockquote>
<p>at all yet.</p>



<a name="183371338"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183371338" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183371338">(Dec 13 2019 at 15:47)</a>:</h4>
<p>moving end-to-end queries (or at least moving queries more towards the beginning of the pipeline) is useful for a batch compiler too</p>



<a name="183371354"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183371354" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183371354">(Dec 13 2019 at 15:47)</a>:</h4>
<p>just as a side note</p>



<a name="183371384"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183371384" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183371384">(Dec 13 2019 at 15:47)</a>:</h4>
<p>Thanks <span class="user-mention" data-user-id="126931">@centril</span> for the time check :)</p>



<a name="183371436"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183371436" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183371436">(Dec 13 2019 at 15:48)</a>:</h4>
<p>I'm not really sure where we stand at the moment</p>



<a name="183371444"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183371444" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183371444">(Dec 13 2019 at 15:48)</a>:</h4>
<blockquote>
<p>two kinds of "implementations" of the same query system, with different trade-offs</p>
</blockquote>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> this does have the drawback of fragility? (e.g. wrt. the test suite and whatnot?)</p>



<a name="183371489"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183371489" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183371489">(Dec 13 2019 at 15:48)</a>:</h4>
<p>I think we need several meetings :P</p>



<a name="183371527"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183371527" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183371527">(Dec 13 2019 at 15:48)</a>:</h4>
<p>these would differ in optimizations but the end 'result' would be the same from test pov, no?</p>



<a name="183371540"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183371540" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183371540">(Dec 13 2019 at 15:49)</a>:</h4>
<p>(such as streaming I/O or caches)</p>



<a name="183371551"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183371551" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183371551">(Dec 13 2019 at 15:49)</a>:</h4>
<p>OK, well, we're at 10 minutes left, why don't we discuss follow-up meetings?</p>



<a name="183371569"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183371569" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183371569">(Dec 13 2019 at 15:49)</a>:</h4>
<p><span class="user-mention" data-user-id="153740">@Igor Matuszewski</span> assuming opts don't change end result</p>



<a name="183371572"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183371572" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183371572">(Dec 13 2019 at 15:49)</a>:</h4>
<p>One thing I was thinking is that I'd like to try to have a meeting to talk about the work we're pursuing on chalk and type-system "library-ification"</p>



<a name="183371578"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183371578" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183371578">(Dec 13 2019 at 15:49)</a>:</h4>
<p>I imagine such a discussion migfht help to make some of this debate more concrete</p>



<a name="183371596"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183371596" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183371596">(Dec 13 2019 at 15:49)</a>:</h4>
<p>so, <span class="user-mention" data-user-id="119009">@eddyb</span>, my comments from before were meant to explore a design branch that takes what Niko listed as given. they were not meant as, I consider other approaches, branching off earlier, unfeasible or something.</p>



<a name="183371650"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183371650" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183371650">(Dec 13 2019 at 15:50)</a>:</h4>
<p><span class="user-mention" data-user-id="126931">@centril</span> oh you mean like "fuel/resource"-limited queries?</p>



<a name="183371706"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183371706" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183371706">(Dec 13 2019 at 15:50)</a>:</h4>
<p>I'm sure chalk and macro would need separate meetings in terms of librarification</p>



<a name="183371747"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183371747" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183371747">(Dec 13 2019 at 15:51)</a>:</h4>
<blockquote>
<p>so, <span class="user-mention silent" data-user-id="119009">eddyb</span>, my comments from before were meant to explore a design branch that takes what Niko listed as given. they were not meant as, I consider other approaches, branching off earlier, unfeasible or something.</p>
</blockquote>
<p>so did you mean that rustc will <em>for now</em> remain a batch compiler? I read it as "for the indefinite future"</p>



<a name="183371752"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183371752" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183371752">(Dec 13 2019 at 15:51)</a>:</h4>
<p>So yeah that's kind of one set of meetings: on specific library-ification topics</p>



<a name="183371777"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183371777" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183371777">(Dec 13 2019 at 15:51)</a>:</h4>
<p><span class="user-mention" data-user-id="153740">@Igor Matuszewski</span> more like basic "the choices made for the infrastructure are not dependent upon implicitly for correctness purposes of tests"</p>



<a name="183371834"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183371834" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183371834">(Dec 13 2019 at 15:52)</a>:</h4>
<blockquote>
<blockquote>
<p>so, <span class="user-mention silent" data-user-id="119009">eddyb</span>, my comments from before were meant to explore a design branch that takes what Niko listed as given. they were not meant as, I consider other approaches, branching off earlier, unfeasible or something.</p>
</blockquote>
<p>so did you mean that rustc will <em>for now</em> remain a batch compiler? I read it as "for the indefinite future"</p>
</blockquote>
<p>I meant, in the scenario that Niko described, it would remain a batch compiler</p>



<a name="183371846"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183371846" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183371846">(Dec 13 2019 at 15:52)</a>:</h4>
<p>For the parser stuff, me, <span class="user-mention" data-user-id="119031">@Esteban Küber</span>, <span class="user-mention" data-user-id="123856">@Vadim Petrochenkov</span>, <span class="user-mention" data-user-id="133169">@matklad</span>, other people who are interested, should probably discuss</p>



<a name="183371855"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183371855" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183371855">(Dec 13 2019 at 15:52)</a>:</h4>
<p>one thing that I think we're also not touching upon would be multi-crate compilation</p>



<a name="183371867"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183371867" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183371867">(Dec 13 2019 at 15:52)</a>:</h4>
<p>I'm in the process of doing large scale refactorings of the parser</p>



<a name="183371873"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183371873" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183371873">(Dec 13 2019 at 15:52)</a>:</h4>
<p>which may or may not impact some decisions here</p>



<a name="183371880"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183371880" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183371880">(Dec 13 2019 at 15:52)</a>:</h4>
<p>huh why can't I find niko's message</p>



<a name="183371902"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183371902" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Esteban Küber <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183371902">(Dec 13 2019 at 15:52)</a>:</h4>
<p>I'll be happy as long as we have "parity" in observed behavior</p>



<a name="183371909"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183371909" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183371909">(Dec 13 2019 at 15:52)</a>:</h4>
<p><span class="user-mention" data-user-id="119009">@eddyb</span> <a href="#narrow/stream/131828-t-compiler/topic/design.20meeting.202019-12-13/near/183371074" title="#narrow/stream/131828-t-compiler/topic/design.20meeting.202019-12-13/near/183371074">https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/design.20meeting.202019-12-13/near/183371074</a></p>



<a name="183371910"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183371910" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183371910">(Dec 13 2019 at 15:52)</a>:</h4>
<p>niko's message: <a href="#narrow/stream/131828-t-compiler/topic/design.20meeting.202019-12-13/near/183371074" title="#narrow/stream/131828-t-compiler/topic/design.20meeting.202019-12-13/near/183371074">https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/design.20meeting.202019-12-13/near/183371074</a></p>



<a name="183371915"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183371915" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183371915">(Dec 13 2019 at 15:53)</a>:</h4>
<p>oh yeah</p>



<a name="183371945"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183371945" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183371945">(Dec 13 2019 at 15:53)</a>:</h4>
<p>oh I could've sworn it had bullet points or numbers in it, whoops</p>



<a name="183371947"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183371947" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183371947">(Dec 13 2019 at 15:53)</a>:</h4>
<blockquote>
<p>I think what <span class="user-mention silent" data-user-id="124287">mw</span> is saying (which I'm sympathetic to) is that there may well be a need to have two "drivers", one for "batch compilation" and one for "IDE". I imagine they would both be based around the same set of core libaries and share 99% of the same code, but might make some choices differently (e.g., batch compilation might be based on arenas and use the disk to cache incremental state, IDEs would likely not)</p>
</blockquote>
<p>I think this is <a href="#narrow/stream/131828-t-compiler/topic/design.20meeting.202019-12-13/near/183371074" title="#narrow/stream/131828-t-compiler/topic/design.20meeting.202019-12-13/near/183371074">the message <span class="user-mention" data-user-id="124287">@mw</span> was referring to</a>, <span class="user-mention" data-user-id="119009">@eddyb</span></p>



<a name="183371972"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183371972" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183371972">(Dec 13 2019 at 15:53)</a>:</h4>
<blockquote>
<p>I'll be happy as long as we have "parity" in observed behavior</p>
</blockquote>
<ul>
<li>crucially not regressing the ability to reason about the grammar</li>
</ul>



<a name="183372006"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183372006" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183372006">(Dec 13 2019 at 15:53)</a>:</h4>
<p>e.g. not having a formal grammar is sub-optimal if we want to re-architecture things</p>



<a name="183372008"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183372008" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183372008">(Dec 13 2019 at 15:54)</a>:</h4>
<p><span class="user-mention" data-user-id="126931">@centril</span> I think what would make sense is to start with some private discussion to hammer out rough design and then a larger meeting to help fill the rest of us in</p>



<a name="183372081"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183372081" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183372081">(Dec 13 2019 at 15:54)</a>:</h4>
<p>I can see having multiple "policies" for how to approach compilation and how much RAM vs disk space to use</p>



<a name="183372094"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183372094" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183372094">(Dec 13 2019 at 15:54)</a>:</h4>
<p>Sure; I believe we have a thread somewhere in this stream about the parser</p>



<a name="183372098"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183372098" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Esteban Küber <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183372098">(Dec 13 2019 at 15:54)</a>:</h4>
<p>What we'll ideally have is someone familiar with both ra and libsyntax :)</p>



<a name="183372105"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183372105" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183372105">(Dec 13 2019 at 15:54)</a>:</h4>
<p>in fact I think I suggested a long time ago that RLS could interleave compiling the crate and querying</p>



<a name="183372128"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183372128" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183372128">(Dec 13 2019 at 15:55)</a>:</h4>
<blockquote>
<p>What we'll ideally have is someone familiar with both ra and libsyntax <span aria-label="slight smile" class="emoji emoji-1f642" role="img" title="slight smile">:slight_smile:</span></p>
</blockquote>
<p>not sure who that is</p>



<a name="183372136"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183372136" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183372136">(Dec 13 2019 at 15:55)</a>:</h4>
<p><span class="user-mention" data-user-id="119031">@Esteban Küber</span> that might be me (only me <span aria-label="sob" class="emoji emoji-1f62d" role="img" title="sob">:sob:</span> ?)</p>



<a name="183372143"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183372143" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183372143">(Dec 13 2019 at 15:55)</a>:</h4>
<p>because you can more or less "just" stop from e.g. type-checking all the functions (between two functions, that is) and run some query</p>



<a name="183372239"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183372239" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183372239">(Dec 13 2019 at 15:56)</a>:</h4>
<blockquote>
<p>I can see having multiple "policies" for how to approach compilation and how much RAM vs disk space to use</p>
</blockquote>
<p>yes, I think in my ideal world we probably land here; it may take us some time to get there</p>



<a name="183372273"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183372273" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183372273">(Dec 13 2019 at 15:56)</a>:</h4>
<p>so what you're talking about doesn't seem implausible or undesirable for me</p>



<a name="183372291"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183372291" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183372291">(Dec 13 2019 at 15:56)</a>:</h4>
<p>I just don't think there is a need for persisting something <em>other</em> than incremental caches</p>



<a name="183372321"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183372321" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183372321">(Dec 13 2019 at 15:57)</a>:</h4>
<p>So let's put this another way</p>



<a name="183372325"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183372325" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183372325">(Dec 13 2019 at 15:57)</a>:</h4>
<p><span class="user-mention" data-user-id="133169">@matklad</span> I can't say I got a clear impression of what "event" based means; If you could provide an example &amp; also point me towards whatever RA uses that would be good. And I need to read up on whatever Swift is doing</p>



<a name="183372418"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183372418" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183372418">(Dec 13 2019 at 15:58)</a>:</h4>
<p>Actually, let's not put this another way, because we have 2 minutes left here.</p>



<a name="183372421"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183372421" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Esteban Küber <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183372421">(Dec 13 2019 at 15:58)</a>:</h4>
<blockquote>
<p><span class="user-mention silent" data-user-id="119031">Esteban Küber</span> that might be me (only me <span aria-label="sob" class="emoji emoji-1f62d" role="img" title="sob">:sob:</span> ?)</p>
</blockquote>
<p>we better do something to change that</p>



<a name="183372454"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183372454" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183372454">(Dec 13 2019 at 15:58)</a>:</h4>
<p>But I think I would like to break out a separate topic to chat with <span class="user-mention" data-user-id="119009">@eddyb</span>, <span class="user-mention" data-user-id="133169">@matklad</span>, and <span class="user-mention" data-user-id="153740">@Igor Matuszewski</span> (and others who wish) about the best way to have rust-analyzer leverage rustc for precise queries</p>



<a name="183372457"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183372457" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183372457">(Dec 13 2019 at 15:58)</a>:</h4>
<p><span class="user-mention" data-user-id="126931">@centril</span> could you organize a parser meeting? <span aria-label="heart" class="emoji emoji-2764" role="img" title="heart">:heart:</span> ?</p>



<a name="183372466"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183372466" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183372466">(Dec 13 2019 at 15:58)</a>:</h4>
<p>Or put another way, that's clearly a follow-up item</p>



<a name="183372503"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183372503" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183372503">(Dec 13 2019 at 15:59)</a>:</h4>
<p>And it seems to have been the heart of what we discussed here, though perhaps we went round about?</p>



<a name="183372649"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183372649" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183372649">(Dec 13 2019 at 16:00)</a>:</h4>
<p>I think we went somewhat off-topic on that to be honest</p>



<a name="183372658"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183372658" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183372658">(Dec 13 2019 at 16:00)</a>:</h4>
<p><span class="user-mention" data-user-id="133169">@matklad</span> I think it would make sense to start with collecting some resources and reading material before organizing a meeting</p>



<a name="183372661"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183372661" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183372661">(Dec 13 2019 at 16:00)</a>:</h4>
<p>it'd be good to come back to that</p>



<a name="183372665"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183372665" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183372665">(Dec 13 2019 at 16:00)</a>:</h4>
<p>so this sounds like the RLS would slowly merge into rustc over time, and libraries would be extracted to be used by both rustc and RA</p>



<a name="183372692"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183372692" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183372692">(Dec 13 2019 at 16:01)</a>:</h4>
<p>Otherwise it's hard to make informed conversations in the meeting</p>



<a name="183372701"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183372701" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183372701">(Dec 13 2019 at 16:01)</a>:</h4>
<p>I could see half of RLS remaining external to drive Cargo</p>



<a name="183372705"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183372705" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183372705">(Dec 13 2019 at 16:01)</a>:</h4>
<p>Well, I'm not sure about the RLS part -- at least, our hope was that the RLS gets deprecated fairly quickly.</p>



<a name="183372707"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183372707" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183372707">(Dec 13 2019 at 16:01)</a>:</h4>
<p>or merging into Cargo somehow?</p>



<a name="183372729"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183372729" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183372729">(Dec 13 2019 at 16:01)</a>:</h4>
<p>But replaced I guess with some other more targeted bits of tooling</p>



<a name="183372737"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183372737" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183372737">(Dec 13 2019 at 16:01)</a>:</h4>
<p><span class="user-mention" data-user-id="133169">@matklad</span> since you seem to have ideas about what direction to go in it would be good to elaborate on that + provide some resources</p>



<a name="183372751"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183372751" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183372751">(Dec 13 2019 at 16:01)</a>:</h4>
<p>That are used for the time being (but not externally "known")</p>



<a name="183372754"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183372754" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183372754">(Dec 13 2019 at 16:01)</a>:</h4>
<p>so I think it'd make sense to make RA the primary investment in the IDE space</p>



<a name="183372758"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183372758" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183372758">(Dec 13 2019 at 16:01)</a>:</h4>
<p>I guess <code>cargo rustc -- --lsp localhost:35487</code> would "just" work heh</p>



<a name="183372831"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183372831" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183372831">(Dec 13 2019 at 16:02)</a>:</h4>
<p>which needs parity with RLS as of now</p>



<a name="183372848"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183372848" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183372848">(Dec 13 2019 at 16:02)</a>:</h4>
<p>we can discuss how to do that separately (as an implementation detail)</p>



<a name="183372891"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183372891" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183372891">(Dec 13 2019 at 16:02)</a>:</h4>
<p>OK, well, I have to go do some errands, it seems clear we'll need to do some follow-ups, but I'm debating what shape they take</p>



<a name="183372943"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183372943" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183372943">(Dec 13 2019 at 16:03)</a>:</h4>
<p>this is what I noted in the hackmd at the end:</p>
<ul>
<li>
<p>What is the best architecture to use to have rust-analyzer leverage rustc for precise queries, notably "find all usages"?<br>
    * Folks: eddyb, matklad, xanewok, maybe flodiebold etc<br>
    * This was a topic we spent a lot of the meeting on</p>
</li>
<li>
<p>Library-ification specifics<br>
    * Parsers<br>
    * Chalk / type extraction</p>
</li>
</ul>



<a name="183372958"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183372958" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183372958">(Dec 13 2019 at 16:03)</a>:</h4>
<p>Maybe some elaborations from various parties in the form of "opinion pieces" would be helpful</p>



<a name="183372968"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183372968" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183372968">(Dec 13 2019 at 16:03)</a>:</h4>
<p>yeah</p>



<a name="183372983"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183372983" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183372983">(Dec 13 2019 at 16:03)</a>:</h4>
<p>Like <span class="user-mention" data-user-id="119009">@eddyb</span> can give their take on things in a write-up</p>



<a name="183372984"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183372984" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183372984">(Dec 13 2019 at 16:03)</a>:</h4>
<p>I'll write some notes and share them here later on</p>



<a name="183373074"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183373074" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183373074">(Dec 13 2019 at 16:04)</a>:</h4>
<p>also: please distinguish short-term vs long-term strategies</p>



<a name="183373083"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183373083" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183373083">(Dec 13 2019 at 16:04)</a>:</h4>
<blockquote>
<p>Like <span class="user-mention silent" data-user-id="119009">eddyb</span> can give their take on things in a write-up</p>
</blockquote>
<p>every time someone says that, I wonder if they underestimate the effort/time involved :P</p>



<a name="183373090"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183373090" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183373090">(Dec 13 2019 at 16:05)</a>:</h4>
<p>re shape, I must say that the present meeting was too high energy/velocity for me.</p>



<a name="183373112"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183373112" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183373112">(Dec 13 2019 at 16:05)</a>:</h4>
<p>Yeah, it was very hard to keep up.</p>



<a name="183373116"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183373116" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183373116">(Dec 13 2019 at 16:05)</a>:</h4>
<p>there are a lot of things where if I can dedicate time to it I would rather spend time on implementing it</p>



<a name="183373149"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183373149" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183373149">(Dec 13 2019 at 16:05)</a>:</h4>
<p><span class="user-mention" data-user-id="133169">@matklad</span> same, and I didn't help, sorry about that :/</p>



<a name="183373156"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183373156" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183373156">(Dec 13 2019 at 16:05)</a>:</h4>
<p>but this is the problem <span class="user-mention" data-user-id="119009">@eddyb</span> : you implement it but then noone else knows what it is?</p>



<a name="183373226"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183373226" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183373226">(Dec 13 2019 at 16:06)</a>:</h4>
<p>OK, I have to step out. Thanks all <span aria-label="heart" class="emoji emoji-2764" role="img" title="heart">:heart:</span></p>



<a name="183373241"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183373241" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183373241">(Dec 13 2019 at 16:06)</a>:</h4>
<p>Thanks for leading the meeting <span class="user-mention" data-user-id="116009">@nikomatsakis</span> !</p>



<a name="183373265"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183373265" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183373265">(Dec 13 2019 at 16:06)</a>:</h4>
<p><span class="user-mention" data-user-id="116083">@pnkfelix</span> that happens with design documents I've written too :P (but really, I wish I had that problem - of needing to document an implementation - more often)</p>



<a name="183373271"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183373271" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> qmx <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183373271">(Dec 13 2019 at 16:06)</a>:</h4>
<p><span class="user-mention" data-user-id="133169">@matklad</span> I want to watch the parser discussion, where is this going to happen?</p>



<a name="183373309"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183373309" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183373309">(Dec 13 2019 at 16:07)</a>:</h4>
<p>I don't think we're ready for that discussion yet</p>



<a name="183373321"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183373321" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> qmx <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183373321">(Dec 13 2019 at 16:07)</a>:</h4>
<p>I mean, even the research material pre-meeting</p>



<a name="183373405"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183373405" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183373405">(Dec 13 2019 at 16:08)</a>:</h4>
<p>oh yeah wg-grammar should probably make a working parser testing rig too, shouldn't it?</p>



<a name="183373461"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183373461" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183373461">(Dec 13 2019 at 16:09)</a>:</h4>
<p><span class="user-mention" data-user-id="119009">@eddyb</span> well we're very much no-where near that</p>



<a name="183373501"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183373501" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183373501">(Dec 13 2019 at 16:09)</a>:</h4>
<p>like we don't have a way to disambiguate grammars so... ^^</p>



<a name="183373511"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183373511" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183373511">(Dec 13 2019 at 16:09)</a>:</h4>
<p>idk why people keep thinking that matters</p>



<a name="183373591"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183373591" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183373591">(Dec 13 2019 at 16:10)</a>:</h4>
<p>first off, we could be comparing syn and libsyntax (and ra-syntax? not sure what that looks like yet), and we could've all along</p>



<a name="183373613"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183373613" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183373613">(Dec 13 2019 at 16:10)</a>:</h4>
<p><span class="user-mention" data-user-id="119009">@eddyb</span> ah you mean just comparing different impls</p>



<a name="183373616"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183373616" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183373616">(Dec 13 2019 at 16:10)</a>:</h4>
<p>secondly, once we have that we can just check that what everyone else agrees on, happens to be one of the possible parse trees</p>



<a name="183373619"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183373619" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183373619">(Dec 13 2019 at 16:10)</a>:</h4>
<p>not against a formal grammar</p>



<a name="183373673"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183373673" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183373673">(Dec 13 2019 at 16:11)</a>:</h4>
<p>we've been talking about this for a year, I'm starting to suspect we don't have the free time between us combined to move forward :P (and in the meanwhile we keep forgetting what we can/should do)</p>



<a name="183373682"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183373682" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183373682">(Dec 13 2019 at 16:11)</a>:</h4>
<p>but also this is not #wg-grammar, sorry for offtopic</p>



<a name="183373804"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183373804" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183373804">(Dec 13 2019 at 16:12)</a>:</h4>
<p><span class="user-mention" data-user-id="116013">@qmx</span> , <span class="user-mention" data-user-id="119009">@eddyb</span> <span class="user-mention" data-user-id="126931">@centril</span> <span class="user-mention" data-user-id="119031">@Esteban Küber</span> I've opened <a href="#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/Parser" title="#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/Parser">https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/Parser</a> for discussing parser</p>



<a name="183373844"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183373844" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183373844">(Dec 13 2019 at 16:13)</a>:</h4>
<p><span class="user-mention" data-user-id="133169">@matklad</span> I would like to have that in #t-compiler; not subscribed to wg-rls-2.0</p>



<a name="183373851"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183373851" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183373851">(Dec 13 2019 at 16:13)</a>:</h4>
<p>(and we already have a topic in that)</p>



<a name="183373999"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183373999" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183373999">(Dec 13 2019 at 16:14)</a>:</h4>
<p>Could you give a link?</p>



<a name="183374028"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-13/near/183374028" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.html#183374028">(Dec 13 2019 at 16:15)</a>:</h4>
<p><a href="#narrow/stream/131828-t-compiler/topic/frontend.20library-ification" title="#narrow/stream/131828-t-compiler/topic/frontend.20library-ification">https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/frontend.20library-ification</a></p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>